package cn.zqy.demo2.day03.demo01;

import java.util.ArrayList;
import java.util.List;

/**
 * 【异步的，多线程】
 * list作为Collection集合的子接口，不但继承了Collection接口中的全部方法，而且还增加了一些根据元素索引来操
 * 作集合的特有方法，如下：
 *      public void add(int index, E element) : 将指定的元素，添加到该集合中的指定位置上。
 *      public E get(int index) :返回集合中指定位置的元素。
 *      public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
 *      public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。*/
public class Demo01List {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");
        list.add("eee");
        System.out.println(list);
        /*1.  add(int index, E element) 将指定的元素，添加到该集合中的指定位置上*/
        list.add(2,"it");
        System.out.println(list);

        /*2. E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。*/
        String s = list.remove(1);
        System.out.println(s);
        System.out.println(list);

        // Collection接口的remove
        boolean aaa = list.remove("aaa");
        System.out.println(aaa);
        System.out.println(list);
        System.out.println("=============");

        // 3.   E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素
        String ppp = list.set(2, "ppp");
        System.out.println(ppp);
        System.out.println(list);

        // 4.   E get(int index) :返回集合中指定位置的元素。
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }


        // 测试remove在int列表中的表现
        List<Integer> li = new ArrayList<>();
        li.add(5);
        li.add(4);
        li.add(3);
        li.add(2);
        li.add(1);
        System.out.println("int数组： " + li);

        // 如果不用包装类，则取出的是索引
        boolean in = li.remove((Integer) 1);
        System.out.println(li);
    }
}
